const express = require('express')
const router = express.Router()

// 导入验证数据的中间件
const expressJoi = require('@escook/express-joi')

// 导入 Handle 路由处理模块
const userInfoHandle = require('../router_handle/userinfo')

// 导入需要的验证规则
const { name_limit, email_limit, password_limit } = require('../limit/user')

// --------------------------------个人信息--------------------------------------------

//上传头像
router.post('/uploadAvatar', userInfoHandle.uploadAvatar)
// 绑定账号
router.post('/bindAccount', userInfoHandle.bindAccount)
// 修改姓名
router.post('/updateName', expressJoi(name_limit), userInfoHandle.updateName)
// 修改性别
router.post('/updateSex', userInfoHandle.updateSex)
// 修改邮箱
router.post('/updateEmail', expressJoi(email_limit), userInfoHandle.updateEmail)
// 修改密码
router.post('/updatePassword', expressJoi(password_limit), userInfoHandle.updatePassword)


// --------------------------------用户管理--------------------------------------------

// 创建管理员
router.post('/creatAdmin', userInfoHandle.creatAdmin)
// 获取管理员列表
router.post('/getAdminList', userInfoHandle.getAdminList)
// 修改管理员信息
router.post('/updateAdminInfo', userInfoHandle.updateAdminInfo)
// 管理员降为用户
router.post('/updateAdminToUser', userInfoHandle.updateAdminToUser)
// 用户升为管理员
router.post('/updateUserToAdmin', userInfoHandle.updateUserToAdmin)
// 根据账号搜索用户
router.post('/searchUserByAccount', userInfoHandle.searchUserByAccount)
// 冻结用户
router.post('/freezeUser', userInfoHandle.freezeUser)
// 解冻用户
router.post('/unfreezeUser', userInfoHandle.unfreezeUser)
// 获取冻结用户列表
router.get('/getFreezeUserList', userInfoHandle.getFreezeUserList)
// 删除用户
router.delete('/deleteUser', userInfoHandle.deleteUser)
// 通过部门获取用户列表
router.post('/getUserListByDepartment', userInfoHandle.getUserListByDepartment)
// 获取对应身份的用户总人数
router.post('/getUserCountByIdentity', userInfoHandle.getUserCountByIdentity)
// 获取当前页的用户列表
router.post('/getUserListByPager', userInfoHandle.getUserListByPager)
// 获取部门列表
router.get('/getDepartmentList', userInfoHandle.getDepartmentList)
// 根据 ID 获取用户信息
router.post('/getUserInfo', userInfoHandle.getUserInfo)

module.exports = router